USE [AlegroPedidos]
GO
/****** Object:  Trigger [dbo].[trgAprovaExportaPedido]    Script Date: 29/12/2014 14:58:54 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trgAprovaExportaPedido] ON [dbo].[tbl_pedido]
FOR UPDATE
AS
  BEGIN
        --variaveis
		declare @ped_status_comercial int ;			--status comercial
        declare @ped_status_financeiro int ;		--status financeiro
        declare @ped_status_final int ;				--status combinado do pedido
        declare @ped_codigo_alegro_pedido int ;		--codigo gerado pelo alegro sistemas
		declare @ped_codigo_singem int;				--codigo restornado do singem
		declare @ped_data_emissao datetime ;		--data pedido
		declare @codigo_vendedor int;				--vendedor

       
        select @ped_status_comercial= i.ped_status_comercial from inserted i;  
        select @ped_status_financeiro= i.ped_status_financeiro from inserted i;      
        select @ped_codigo_alegro_pedido = i.ped_codigo from inserted i;
        select @ped_status_final = i.ped_status from inserted i;
		select @ped_data_emissao = i.ped_data_emissao from inserted i;
		select @codigo_vendedor = i.usu_codigo from inserted i;

       
        --if update(ped_status_comercial) and update(ped_status_financeiro)
        if (@ped_status_final = 0 and @ped_status_comercial = 1 and @ped_status_financeiro = 1)
		begin
			set @ped_status_final= 1;
        	-- atualiza o status do pedido no singem;
			update tbl_pedido set ped_status = @ped_status_final where ped_codigo = @ped_codigo_alegro_pedido;

			-- retorna o ultimo codigo do pedido do singem mais um
			SELECT @ped_codigo_singem = [Chave]+1 FROM [SingemSQL].[dbo].[NumeracaoPedido];
            
			--atualiza ultimo codigo singem
			update [SingemSQL].[dbo].[NumeracaoPedido] set [Chave] = left(replicate('0',2) + cast(@ped_codigo_singem as varchar),5);
			
			-- insere no singem o pedido do AlegroPedidos
			insert into [SingemSQL].[dbo] .[Pedidos] (
												[Chave]
												,[Cliente]
												,[Emissao]
												,[Documento]
												,[ER]
												,[Vendedor]
												,[ComissVendedor]
												,[Emissor]  
												,[Observacoes]    
												,[TpRecebimento]
												,[Cancelado]
												,[Desconto]
												,[Entrega]
												,[Atendido] 
												,[Prazo]   
												,[Bruto]
												,[Liquido]
												,[Classificacao]
												,[Cotacao]    
												,[Area]
												,[Prioridade]    
												,[EliminarCarregamento]    
												,[Vias]
												,[Sincronizacao]    
												,[Bloqueado]
												,[Conferencia]
												,[ICMSubst]
												) 
											select
											   @ped_codigo_singem as Chave
											   ,cli_codigo as Cliente
											   ,ped_data_emissao as Emissao
											   ,ped_documento as Documento
											   ,'F' as ER
											   ,usu_codigo as Vendedor
											   ,ped_comissao_vendedor as ComissaoVendedor
											   ,ped_responsavel as Emissor
											   ,ped_observacoes as Observacoes
											   ,ped_tipo_tp_recebimento as TpRecebimento
											   ,ped_cancelado as Cancelado
											   ,ped_desconto as Desconto
											   ,ped_entrega as Entrega
											   ,'T' as Atendido
											   ,ped_prazo as Prazo
											   ,ped_peso_bruto as Bruto
											   ,ped_peso_liquido as Liquido
											   ,ped_tabela as Classificacao
											   ,'F' as Cotacao
											   ,'' as Area
											   ,'01' as Prioridade
											   ,'F' as EliminarCarregamento
											   ,0 as Vias
											   ,CURRENT_TIMESTAMP as Sincronizacao
											   ,'F' as Bloqueado
											   ,'F' as Conferencia
											   ,'F' as ICMSubst
										from tbl_pedido ;

		SELECT
       [ped_codigo] as Chave1      
        ,FORMAT(@ped_data_emissao, 'yyy-MM-dd 00:00:00.000') as Data
        ,[pro_codigo] as Produto
        ,[pro_quantidade]*- 1 as Quantidade 
		,0 as Custo
		,[pro_valor_unitario] as Preco
		,@codigo_vendedor as Vendedor
		,[pro_comissao_vendedor] as ComissVendedor
		,'Saída2' as Tipo		            
        ,1 as Faturado
		,'F' as ER
		,'XXXXXX' as Cliente --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,'PEDIDO VIA ALEGRO PEDIDOS' as Historico
		,[ped_codigo] as Documento
		,[pro_quantidade]*- 1 as Unidade
		,'XXXXXX' as Grupo --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,'F' as Cancelado
		,'XXXXXX' as CCadastro --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,[pro_valor_unitario] as PCadastro
		,'XXXXXX' as ICMS  --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,'XXXXXX' as Desconto --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,[pro_quantidade] as QuantidadePedida
		,'XXXXXX' as Entrega --ver com gladstone como trazer o grupo do produto do banco dele e jogar no nosso
		,[pro_codigo] as Referencia   
		 ,CURRENT_TIMESTAMP as Sincrozincao
		--,[pro_valor_total_produto]
		--,[pro_comissao_cliente]
		--,[pro_ipi] as IPI
		--,[pro_status]
		--,[pro_excluido]
        
  FROM [AlegroPedidos] .[dbo]. [tbl_produto]

  -- ajustar codigo de gladstone para trazer os dados faltantes em produto para evitar problemas de funcionamento no Singem. Pode ser que parte desses campos sejam considerados em rotinas internas
  -- do singem.
		

		end
        -- PRINT 'AFTER UPDATE Trigger fired.'
	end
